todasLasListasFinitas :: [[Int]]
todasLasListasFinitas = todasLasListasFinitas' (todasLasListasDeLong1) 1
    
todasLasListasFinitas':: [[Int]] -> Int -> [[Int]]
todasLasListasFinitas' listas longActual = listas ++ (todasLasListasFinitas' (listasConUnElementoMas) (longActual+1)) 
    where listasConUnElementoMas = agregarUnElemACadaUna listas

todasLasListasDeLong1 :: [[Int]]
todasLasListasDeLong1 = [[x] | x <- [1..]]

agregarUnElemACadaUna :: [[Int]] -> [[Int]]
agregarUnElemACadaUna [] = []
agregarUnElemACadaUna (xs:xxs) = [[x]++xs | x <- [1..]] ++ agregarUnElemACadaUna xxs
